Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

188
Visualizações
Encuentre los índices de un par de elementos consecutivos de una matriz determinada cuya suma sea igual a un número de destino específico, si no se encuentra ningún par, devuelva {-1, -1]

Estoy escribiendo una función JavaScript sumPair(numbers, target) para encontrar los índices de un par de elementos consecutivos de una matriz dada cuya suma es igual a un número objetivo específico. La función debe devolver una matriz de los índices del par de elementos consecutivos o la matriz [-1, -1] si no se encuentra un par. Mi función funciona si no necesito devolver [-1, -1] cuando no se encuentra ningún par, pero devuelve [-1, -1] incluso si hay un par.

 var sumPair = function(nums, target) { for (let i = 0; i < nums.length; i++) { for (let j = i + 1; j < nums.length; j++) { if (nums[i] + nums[j] == target) { return [i, j] } else if (nums[i] + nums[j] !== target) { return [-1, -1] } } } }; document.write(sumPair([10, 20, 10, 40, 50, 60, 70, 30], 50));

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

El problema principal es que su declaración else if no está dentro del ciclo, sin embargo, si la coloca en el ciclo, devolverá falso en el primer falso que obtenga, en lugar de recorrer todo el conjunto.

En su lugar, devuelva el caso base y, si hay una coincidencia, devolverá la coincidencia antes de que se active el caso base.

 <!DOCTYPE html> <html> <head> </head> <body> <script type="text/javascript"> var sumPair = function(nums, target) { for(let i = 0; i < nums.length; i++){ for(let j = i+1; j < nums.length; j++){ if(nums[i] + nums[j] == target){ return ([i, j]) } } } return([-1,-1]) }; document.write(sumPair([10,20,10,40,50,60,70,30],50)); </script> </script> </body> </html>
about 4 years ago · Juan Pablo Isaza Relatório

0

Puede omitir el segundo bucle for y solo verificar i+1

 var sumPair = function(nums, target) { for (let i = 0; i < nums.length - 1; i++) { if(nums[i] + nums[i+1] == target) { return [nums[i], nums[i+1]] } } return [-1,-1] };
about 4 years ago · Juan Pablo Isaza Relatório

0

Esta respuesta contiene dos soluciones, una para buscar los dos primeros índices de índices consecutivos (¡literalmente!) y otra de dos índices cuya suma de valores es el valor buscado.

  1. Búsqueda de índices consecutivos.

    Simplemente itere desde el índice 1 hasta que sea más pequeño que la longitud de la matriz. Compruebe la suma del artículo anterior y el artículo real. devolver sus índices.

     const sumPair = (nums, target) => { for (let i = 1; i < nums.length; i++) { if (nums[i - 1] + nums[i] === target) return [i - 1, i]; } return [-1, -1]; }; console.log(sumPair([10, 20, 10, 40, 50, 60, 70, 30], 50));

  2. Busque algunos índices más pequeños.

    Comience a iterar desde cero y almacene el primer índice encontrado en un objeto y verifique si la suma es true .

     const sumPair = (nums, target) => { const indices = {}; for (let i = 0; i < nums.length; i++) { if (nums[i] in indices) return [indices[nums[i]], i]; indices[target - nums[i]] ??= i; } return [-1, -1]; }; console.log(sumPair([10, 20, 10, 40, 50, 60, 70, 30], 50));

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda